package com.xunyin.modules.device.domain;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xunyin.domain.BaseDomain;
import lombok.Data;

/**
 * @Author xunyinyunshang  <3594419785@qq.com>
 * @date 2022-10-15
 */
@Data
@TableName("t_device")
public class TDevice extends BaseDomain {

    @TableId
    private Integer id;

    /**
     * 运营团队主体ID
     */
    private Integer mainId;

    /**
     * 门店Id
     */
    private Integer storeId;

    /**
     * 包间Id
     */
    private Integer storeRoomId;

    /**
     * 主体名称
     */
    private String mainName;

    /**
     * 门店名称
     */
    private String storeName;

    /**
     * 房间名称
     */
    private String storeRoomName;

    /**
     * 暂时无用到
     */
    private Integer doorType;

    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 设备编号
     */
    private String deviceNo;

    /**
     * 设备类型 0、表示大门设备1、表示房门设备 2：表示电源设备 3：表示音箱喇叭 4：自研设备包含（门锁、电源、喇叭）三合一控制 5：表示接入通通锁
     */
    private Integer deviceType;

    /**
     * Mac地址
     */
    private String macAddr;

    /**
     * 设备状态:1、启用 2、停用
     */
    private Integer deviceStatus;

    private Integer status;

    /**
     * 硬件方案 1表示自研硬件,2表示涂鸦硬件，默认使用涂鸦硬件
     */
    private Integer deviceProg;

    /**
     * 硬件设备所在位置：1表示大门，2表示房间
     */
    private Integer devicePos;

    /**
     * 自研硬件是否支持分控（0表示不支持，1表示支持）
     */
    private Integer isSub;

    /**
     * 分控端口1
     */
    private Integer subPort1;

    /**
     * 分控端口2
     */
    private Integer subPort2;

    /**
     * 分控端口3
     */
    private Integer subPort3;

    /**
     * 分控端口0电源开关 0表示关，1表示开
     */
    private Integer subPort0Switch;

    /**
     * 分控端口1开关 0表示关，1表示开
     */
    private Integer subPort1Switch;

    /**
     * 分控端口2开关 0表示关，1表示开
     */
    private Integer subPort2Switch;

    /**
     * 分控端口3开关 0表示关，1表示开
     */
    private Integer subPort3Switch;

    public void copy(TDevice source) {
        BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
    }

}